/**
 * Universidad Del Valle De Guatemala.
 * Algoritmos y Estructuras de Datos.
 * Hoja de Trabajo 7
 * Miguel Enrique Zea Arenales.
 * Carné 09238.
 * 17/10/2012.
 * Descripción: WordSetFactory. Clase  utilizada para instanciar los diferentes 
 * tipos de sets, elaborado por Eduardo Castellanos para el curso de 
 * Algoritmos y Estructuras de Datos 2011.
 */

package bsts;

class WordSetFactory {
	
    /**
     * Pre: ninguna.
     * Post: se genera un objeto que implementa WordSet,
     * tipo de implementación (parámetro): 
     *      1 = SimpleSet (ArrayList)
     *      2 = Red Black Tree
     *      3 = Splay Tree
     *      4 = Hash Table
     *      5 = JCF Linked List
     *      6 = JCF Tree Set
     *      7 = JCF LinkedHashSet
     */
    public static WordSet generateSet(int tipo) {
        if (tipo == 1)
            return new SimpleSet();             // Implementación con ArrayList (de la JCF)
        else if (tipo == 2)
            return new RedBlackTreeSet();       // Implementación con Red Black Search Trees
        else if (tipo == 3)
            return new SplayTreeSet();          // Implementación con Splay Trees
        else if (tipo == 4)
            return new HashTableSet();          // Implementación con HashTable
        else if (tipo == 5)
            return new JCFLinkedListSet();      // Implementación con LinkedList (de la JCF)
        else if (tipo == 6)
            return new JCFTreeSet();            // Implementación con TreeSet (de la JCF)
        else if (tipo == 7)
            return new JCFLinkedHashSet();      // Implementación con LinkedHashSet (de la JCF)
        else
            return null;
    }
}